package com.bgs.travelapp.card.controller;

import com.bgs.travelapp.card.entity.CardRecordEntity;
import com.bgs.travelapp.card.service.CardRecordService;
import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.result.CommonResult;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Date;

/**
 * 购买会员卡记录管理   (前端--会员卡购买)
 * gpd 2022-07-20 09点12分
 */
@RestController
@CrossOrigin
@RequestMapping("/cardRecord")
public class CardRecordController {
    @Resource
    CardRecordService cardRecordService;

    /**
     * 新增会员卡 （前端---用户购买会员卡功能）
     * gpd 2022-08-02 17:16
     * @param cardRecordEntity
     * @return
     */
    @PostMapping("/saveCardRecord")
    public CommonResult saveCardRecord(CardRecordEntity cardRecordEntity){
        return CommonResult.ok(cardRecordService.saveCardRecord(cardRecordEntity));
    }

    /**
     * 查询选择的会员卡信息 （前端---用户购买会员卡功能）
     * gpd 2022-08-02 17:16
     * @return
     */
    @GetMapping("/getChoiceCard")
    public CommonResult getChoiceCard(Integer cardId){
        return CommonResult.ok(cardRecordService.getChoiceCard(cardId));
    }

    /**
     * 查询用户购买会员是否过期  （前端---用户购买会员卡功能）
     * gpd 2022-08-02 17:16
     * @param userId
     * @param cardId
     * @return
     */
    @GetMapping("/getMemberOverdue")
    public CommonResult getMemberOverdue(Integer userId,Integer cardId){
        return CommonResult.ok(cardRecordService.getMemberOverdue(userId,cardId));
    }

    /**
     * 查询已选择的会员卡详情  （前端---用户购买会员卡功能）
     * gpd 2022-08-02 17:16
     * @return
     */
    @GetMapping("/getCardDetails")
    public CommonResult getCardDetails(Integer cardId){
        return CommonResult.ok(cardRecordService.getCardDetails(cardId));
    }

    /**
     * 查询用户购买未过期会员卡的种类（前端--我的会员卡）
     * gpd 2022-08-02 19:16
     * @param userId
     * @return
     */
    @GetMapping("/getUserCard")
    public CommonResult getUserCard(Integer userId){
        return CommonResult.ok(cardRecordService.getUserCard(userId));
    }

    /**
     * 查询用户购买会员卡的过期时间（前端--我的会员卡）
     * gpd 2022-08-03 17点18分
     * @param userId
     * @param cardId
     * @return
     */
    @GetMapping("/getCardExpiration")
    public CommonResult getCardExpiration(Integer userId,Integer cardId){
        return  CommonResult.ok(cardRecordService.getCardExpiration(userId,cardId));
    }

    /**
     查询用户所有购买会员卡记录 分页查询+模糊查（起始购买时间）（结束购买时间）（前端---我的会员卡（支付记录））
     * gpd 2022-08-04 16点12分
     * @param userId
     * @param pageRequest
     * @param createTime
     * @param createTime1
     * @return
     */
    @GetMapping("/getBuyRecord")
    public PageResult getBuyRecord(Integer userId, PageRequest pageRequest, String createTime,String createTime1){
        return cardRecordService.getBuyRecord(userId,pageRequest,createTime,createTime1);
    }

    /**
     * 查询用户还未过期的会员卡记录 分页查询+模糊查（起始购买时间）（结束购买时间）（前端---我的会员卡（查看明细））
     * gpd 2022-08-04 20点25分
     * @param userId
     * @param pageRequest
     * @param createTime
     * @param createTime1
     * @param cardId
     * @return
     */
    @GetMapping("/getBuyCardRecord")
    public PageResult getBuyCardRecord(Integer userId, PageRequest pageRequest, String createTime,String createTime1,Integer cardId){
        return cardRecordService.getBuyCardRecord(userId,pageRequest,createTime,createTime1,cardId);
    }

    /**
     * 查询统计信息（前端---我的会员卡（查看明细--统计））
     * gpd 2022-08-05 16点15分
     * @param userId
     * @return
     */
    @GetMapping("/getStatistics")
    public CommonResult getStatistics (Integer userId){
         return  CommonResult.ok(cardRecordService.getStatistics(userId));
    }
}
